//
//  YTFStatusListViewModel.swift
//  sinaWeibo
//
//  Created by pro on 16/3/1.
//  Copyright © 2016年 pro. All rights reserved.
//

//在这里写有关网络请求和其他一些逻辑代码

import UIKit
import AFNetworking

class YTFStatusListViewModel: NSObject {

    //定义一个数组来接收关注对象的微博信息，里面的对象是模型类
    lazy var array: [YTFStatusViewModel] = [YTFStatusViewModel]()
    
    ///  网络请求
    func loadData(since_id: Int,max_id: Int,finish: (count: Int)->()){
        //实例化一个管理者
        let manager = AFHTTPSessionManager()
        
        //拼接参数
        let params = ["access_token":YTFUserViewModel.shareInstance.access_token ?? "",
                        "since_id":since_id,
                        "max_id":max_id]
        
        //发送请求
        manager.GET("https://api.weibo.com/2/statuses/home_timeline.json", parameters: params, progress: nil, success: { (_, JSON) -> Void in
            
            //获取statuses数据，字典转模型
            if let json = JSON as? [String:NSObject]{
                
                if let statues = json["statuses"] as? [[String:NSObject]] {
                    
                    //定义一个临时数组
                    var temp = [YTFStatusViewModel]()
                    
                    for statue in statues {
                        
                        let statusModel = YTFStatusModel(dict: statue)
                        
                        //添加到数组中
//                        self.array.append(statusModel)
                        //实例化一个YTFStatusViewModel
                        let viewModel = YTFStatusViewModel()
                        viewModel.statusModel = statusModel
//                        self.array.append(viewModel)
                        temp.append(viewModel)
                        
                        // print(statusModel.user?.screen_name ?? "")
                        
                        
                    }
                    
                    //对数据进行拼接，不过得判断是什么样的状态下拼接数组（下拉刷新/上提更多）
                    if max_id > 0{
                        self.array = self.array + temp
                    }else{
                        self.array = temp + self.array
                    }
                    
                    //刷新数据
                    //                        self.tableView.reloadData()
                    //使用闭包回调刷新数据
                    finish(count: temp.count)
                    
                }
                
            }
            
            }) { (_, error) -> Void in
                print(error)
        }
    }

    
}
